The present invention relates to a data transmit/receive device and a data transmit/receive method for transmitting/receiving digital data between a transmitting device and a receiving device.
Among conventional data transfer methods, there are methods using the IEEE1394 standard (IEEE: The Institute of Electrical and Electronic Engineers, Inc.) for example (see “IEEE1394 High Performance Serial Bus”). For data transfer with this IEEE1394 standard, there is isochronous communication, which is suitable for the transfer of synchronous data such as video signals or audio signals, and asynchronous communication, which is suitable for the transfer of non-synchronous data such as control signals, and both types of communication can be mixed on an IEEE1394 bus. Isochronous communication is so-called broadcasting-type communication, in which isochronous packets that a device on an IEEE1394 bus gives out can be received by all devices on that bus. By contrast, in asynchronous communication, there are the two types of peer-to-peer communication and broadcasting-type communication, and the asynchronous packets that a device on a bus outputs include an identifier indicating the device that is supposed to receive this packet. If this identifier indicates a specific device, then the device specified by the identifier receives the asynchronous packet, and if the identifier indicates broadcasting, then all devices on the bus receive this asynchronous packet.
FIG. 12 shows an isochronous packet, and FIG. 13 shows a CIP header in the isochronous packet of FIG. 12. The SID field 201 in the CIP header of FIG. 13 is the device identification number (referred to as “node number” in the following). The transmitting device transmitting the isochronous packet writes the node number that has been allotted at initialization of the IEEE1394 bus (referred to as “bus reset” in the following) into the CIP header 200 of the isochronous packet. The allotted node number is written into the SID field 201 in the CIP header 200. The number of the channel on which the data is transmitted is written into the channel field 101 of the isochronous packet.
The method for encrypted transmission of audio/video data (abbreviated as “AV data” in the following) on the IEEE1394 bus (in the following this method for encrypted transmission is referred to as “DTCP standard”) is starting to be mapped out by DTLAs (digital transmission licensing administrators), and to be used for encrypted AV data transmission between AV devices. According to this DTCP standard, the transmitting device outputs AV data after subjecting it to an encryption. The receiving device receiving the encrypted data first requests authentication by the transmitting device. If this device authentication between transmitting device and receiving device has terminated normally, the receiving device can obtain an encryption key from the transmitting device. During the time after receiving the AV data from the transmitting device until obtaining the encryption key, the receiving device cannot decrypt the received AV data, but after obtaining the encryption key, the receiving device can decrypt the received AV data.
On the other hand, the IEC61883 standard (referred to as “AV protocol” in the following) adopted by the IEC (International Electrotechnical Commission) is a standard for transferring digital audio signals and digital video signals using the IEEE1394 standard, and administrating the connection of data transmission paths among devices linked to an IEEE1394 bus. In this AV protocol, audio and video data are transferred in isochronous packets. The isochronous packets include a CIP header (CIP: common isochronous packet). The CIP header includes identification information indicating the type of the audio and video data and information such as the device number of the transmitting device transmitting the isochronous packet.
Also, a group of commands for device control with the AV protocol is given by the AV/C command set (see “1394 Trade Association Specification for AV/C Digital Interface Command Set Version 1.0 Sep. 13, 1996”). These commands and their responses are transferred using asynchronous communication. In the AV protocol, if the channel that a transmitting device wants to use for output is already used for broadcast output on the IEEE1394 bus, then transmitting device forcibly stops this output, and instead starts its own output using this channel. At present, most of the devices on the market are designed for peer-to-peer connections, and use broadcasting for the transmitting of data. This is because there are no other devices transmitting data. From now on, however, there may be designs, in which some manufacturers' products stop the bus channels used by devices of other companies in order to guarantee the connection of the own company's product, and instead start to output data themselves using this channel. The following explains the problems that occur in this case.
For example, a case is examined in which a first TV set and a video deck are connected on a IEEE1394 bus. The first TV set transmits encrypted AV data using a predetermined channel of the bus, and the video deck receives these data, and obtaining an encryption key from the first TV set, correctly decrypts the received data. Under these circumstances, the video deck recognizes that the node number of the first TV set is a certain number (e.g. “1”). If in this situation, a second TV set is connected to the bus, this second TV set stops the data transmitting of the first TV set, and using the predetermined channel, starts to transmit encrypted AV data, then, assuming that the node number 1 becomes assigned to the second TV set instead of the first TV set by a bus reset that occurs when the second TV set is connected, the video deck looks up the channel number and the node number in the received isochronous packets to confirm whether the transmitting device has changed, so that the video deck cannot detect that the transmitting device has changed from the first TV set to the second TV set. As a result, even though the video deck receives encrypted data from the second TV set, it cannot correctly decrypt these encrypted data, because it has not obtained the encryption key for these data. As a result, the video deck cannot suitably reproduce the received data.
As a conventional means to solve this problem, JP H11-196110A proposes a method of recognizing corresponding devices from a topology map. The device configuration for this proposed method of recognizing devices from a topology map is shown in FIG. 10. In FIG. 10, numeral 607 denotes a 1394 LSI unit for transmitting/receiving packet data on a 1394 bus. Numeral 605 denotes an asynchronous transaction control unit for controlling communication using asynchronous packets. Numeral 606 denotes a topology configuration production unit, which obtains the hierarchical relation of the node numbers and physical ports from the Self ID packets, and calculates a pattern of the topology connected by the IEEE1394 bus. Numeral 604 denotes a topology change detection unit for detecting a change of the topology in the course of a bus reset, based on the information from the topology configuration production unit 606. Numeral 603 denotes a buffer for holding information necessary for topology configuration production and topology change detection. Numeral 601 denotes a data transfer control unit for controlling the transfer of data. Numeral 602 denotes an authentication processing unit for device authentication between transmitting device and receiving device. The operation of this configuration is explained referring to the flowchart in FIG. 11.
In Step Sa in FIG. 11, the receiving device receives Self ID packets transmitted from each device. These Self ID packets are the packets that each device connected to the bus transmits by broadcasting after a bus reset, and they include a node number (physical ID) and a port status. The port status indicates for each port number such information as “connection to child node”, “connection to parent node”, “not connected to node”, or “no port”. At this Step Sa, the node numbers of the Self ID packets and the hierarchical relation of the ports are obtained. Then in Step Sb, the pattern of the topology connected to the IEEE1394 is calculated from the obtained hierarchical relation information. In Step Sc, after the calculation of the pattern of the topology, node numbers are assigned in order starting with the physical port of the root node with the smallest number, and topology information is produced and stored in the buffer 603.
After that, in Step Sd, the receiving device determines whether a bus reset has occurred while receiving, and if there was no bus reset, then the receiving device continues to receives whereas if there was a bus reset, then at Step Se, it receives the Self ID packets transmitted out by all devices connected to the IEEE1394 bus after the bus reset, and obtains the node numbers and the hierarchical relation of the physical ports contained in the Self ID packets. Then, in Step Sf, the pattern of the topology connected to the IEEE1394 bus is calculated from the obtained hierarchical relation information. After the calculation of the pattern of the topology, in Step Dg, node numbers are assigned in order starting with the physical port of the root node with the smallest number, and new topology information is produced. After that, in Step Sh, the new topology information is compared to the topology information that had been produced before. Then in Step Si, based on the result of the comparison of the topology information, the receiving device confirms the node number of the transmitting device that had been transmitting originally, and continues to receive data from this original transmitting device.
Consequently, with this proposed method, new topology information is produced after the bus reset, so that the reception of data from the original transmitting device can be continued, and if the transmitted data is encrypted, then the received data can be decrypted if the encryption key is obtained again from the original transmitting device.
However, with this conventional method, the topology information is produced based on the Self ID packets, which include the node information and the port status, so that the process for producing the topology information is very complex, and its load on the system is high. In particular as the number of devices connected to the IEEE1394 bus and the number of physical ports increases, more time is needed to produce the topology information, and also for the comparison of the topology information, more time is needed for the judgment which devices have been newly connected to or disconnected from the bus, as the topology configuration becomes more complex. As a result, a certain time is needed until the transmitting device that had been transmitting originally is recognized. If the real-time audio/video data received by a TV set or the like has been received by the receiving device, this audio/video data has to be recorded by the receiving device in real-time without loss, so that it is a serious problem when the time needed to again recognize that the TV set or the like is the transmitting device is too long.
Furthermore, considering the case that 63 devices are connected to the bus, then about 10 kbyte are needed for the calculation of the pattern of the topology, about 20 kbyte are needed for the topology information production process, and 8 to 252 byte are needed for the buffer 603, so that there is the problem that it is necessary to use a large storage capacity.